﻿using System;
using System.Web.UI.WebControls;
using Enums;
using Vallejos.Entidades.Enums;
using Vallejos.Entidades.ModeloDeDatos;
using Vallejos.Negocio;

public partial class Seguridad_Perfiles_BusquedaPerfiles : System.Web.UI.Page
{
    private const string PaginaDeModificacion = "ModificacionPerfiles.aspx";

    #region "Eventos De Pagina"
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)
        {
            CargarListas();
        }
    }

    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];

        var perfil = new Perfil();
        if (ddlAmbito.SelectedIndex != 0)
            perfil.Ambito = new Ambito { IdAmbito = (IdAmbito)ddlAmbito.SelectedIndex };

        perfil.Nombre = txtNombre.Text;
        perfil.Codigo = txtCodigo.Text;

        if (ddlConcesionaria.SelectedIndex > 0)
            perfil.Concesionaria = new Concesionaria() { Id = Convert.ToInt32(ddlConcesionaria.SelectedValue) };

        gvPerfiles.DataSource = negocio.BuscarPerfiles(perfil);
        gvPerfiles.DataBind();
    }
    protected void btnAltaPeril_Click(object sender, EventArgs e)
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        negocio.AlmacenarEntidadEnEdicion<Perfil>(null);
        Response.Redirect(PaginaDeModificacion);
    }
    protected void gvPerfiles_SelectedIndexChanged(object sender, EventArgs e)
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        var idPerfil = Convert.ToInt32(((GridView)sender).SelectedValue);
        negocio.AlmacenarEntidadEnEdicion(negocio.LeerPerfil(idPerfil));

        Response.Redirect(PaginaDeModificacion);
    }
    #endregion

    #region Listas
    private void CargarListas()
    {
        CargarAmbitos();
        Cargarconcesionarias();
    }

    private void CargarAmbitos()
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        HelperUI.CargarLista(ddlAmbito, negocio.LeerAmbitos(),
            "IdAmbito", "Nombre");
    }

    private void Cargarconcesionarias()
    {
        var negocio = (NegocioFacade)Session[VariablesDeSesion.NegocioFacade.ToString()];
        HelperUI.CargarLista(ddlConcesionaria, negocio.LeerConcesionarias(),
            "Id", "RazonSocialNombre");
    }
    #endregion

}